package date;

import java.util.Calendar;

/**
 * @projectName: java-sample
 * @description:
 * @author: Adam
 * @create: 2019-11-07 17:29
 **/

public class CalendarDemo {
    /**
     * 我们现在已经能够通过Date格式化并创建一个日期对象了，但是我们如何才能设置和获取日期数据的特定部分呢，比如说小时，日，或者分钟?
     * 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。
     * Calendar类的功能要比Date类强大很多，而且在实现方式上也比Date类要复杂一些。
     * Calendar类是一个抽象类，在实际使用时实现特定的子类的对象，创建对象的过程对程序员来说是透明的，只需要使用getInstance方法创建即可。
     */
    public static void main(String[] args){
        new CalendarDemo().basicCanlendar();

    }

    public void basicCanlendar(){
        Calendar calendar1 = Calendar.getInstance();
        System.out.println(calendar1.toString());

        //自定义一个日期时间
        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(2009, 6, 12);
        System.out.println(calendar2.toString());

        //把c1对象的日期减去10，也就是c1也就表示为10天前的日期，其它所有的数值会被重新计算
        calendar2.add(Calendar.DATE, -10);

        Calendar calendar = Calendar.getInstance();
        //对象信息的获得
        int year = calendar.get(Calendar.YEAR);
        //月份需要加1
        int month = calendar.get(Calendar.MONTH)+1;
        //获得日期
        int date = calendar.get(Calendar.DATE);
        //24小时制的时间
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        //获得星期几
        int day = calendar.get(Calendar.DAY_OF_WEEK)-1;
        System.out.println("月份为:"+month);
        System.out.println("当前日期为:"+year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second+" "+"星期"+day);
    }
}
